#!/usr/bin/env python
# coding: utf-8

# In[ ]:


import pandas as pd
from snownlp import SnowNLP
import matplotlib.pyplot as plt
import numpy as np

# 载入数据
df = pd.read_excel('D://music_163.xlsx')
# 提取评论
comments = df['comments'].tolist()
# 情感分析
scores = []
for comment in comments:
    s = SnowNLP(comment)
    score = s.sentiments
    scores.append(score)

# 情感分析结果的可视化
def plot_sentiment_analysis(scores):
    plt.figure(figsize=(10, 6))  # 设置图表大小

    plt.hist(scores, bins=60, color='skyblue', edgecolor='black', alpha=0.7)  # 设置直方图颜色和透明度

    plt.xlabel('情感评分', size=14, fontweight='bold')  # 设置X轴标签字体大小和粗细
    plt.ylabel('数量', size=14, fontweight='bold')  # 设置Y轴标签字体大小和粗细

    plt.title('热评情感分析', color='blue', size=16, fontweight='bold')  # 设置图表标题字体大小和颜色
#     plt.grid(True, linestyle='--', alpha=0.6)  # 添加网格线和设置虚线样式

    plt.xticks(np.arange(0, 1.2, step=0.2))  # 设置X轴刻度范围和步长
    plt.yticks(fontsize=12)  # 设置Y轴刻度字体大小

    plt.tight_layout()  # 调整子图布局以防止重叠
    plt.show()

# 调用函数绘制情感分析结果直方图
plot_sentiment_analysis(scores)

